<?xml version="1.0" encoding="UTF-8"?>
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
  <PythonExport
      Father="PersistencePy"
      Name="ComplexGeoDataPy"
      Twin="ComplexGeoData"
      Include="App/ComplexGeoData.h"
      TwinPointer="ComplexGeoData"
      Namespace="Data"
      FatherInclude="Base/PersistencePy.h"
      FatherNamespace="Base"
      Reference="true">
    <Documentation>
      <Author Licence="LGPL" Name="Juergen Riegel" EMail="Juergen.Riegel@web.de" />
      <UserDocu>Father of all complex geometric data types</UserDocu>
    </Documentation>
    <Methode Name="getElementTypes" Const="true">
      <Documentation>
        <UserDocu>Return a list of element types present in the complex geometric data</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="countSubElements" Const="true">
      <Documentation>
        <UserDocu>Return the number of elements of a type</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getFacesFromSubElement" Const="true">
      <Documentation>
        <UserDocu>Return vertexes and faces from a sub-element</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getLinesFromSubElement" Const="true">
      <Documentation>
        <UserDocu>Return vertexes and lines from a sub-element</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getPoints" Const="true">
      <Documentation>
        <UserDocu>Return a tuple of points and normals with a given accuracy</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getLines" Const="true">
      <Documentation>
        <UserDocu>Return a tuple of points and lines with a given accuracy</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getFaces" Const="true">
      <Documentation>
        <UserDocu>Return a tuple of points and triangles with a given accuracy</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="applyTranslation">
      <Documentation>
        <UserDocu>Apply an additional translation to the placement</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="applyRotation">
      <Documentation>
        <UserDocu>Apply an additional rotation to the placement</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="transformGeometry">
      <Documentation>
        <UserDocu>Apply a transformation to the underlying geometry</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="setElementName" Keyword="true">
      <Documentation>
        <UserDocu>
          setElementName(element,name=None,postfix=None,overwrite=False,sid=None), Set an element name

          element  : the original element name, e.g. Edge1, Vertex2
          name     : the new name for the element, None to remove the mapping
          postfix  : postfix of the name that will not be hashed
          overwrite: if true, it will overwrite exiting name
          sid      : to hash the name any way you want, provide your own string id(s) in this parameter

          An element can have multiple mapped names. However, a name can only be mapped
          to one element
        </UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getElementName" Const="true">
      <Documentation>
        <UserDocu>getElementName(name,direction=0) - Return a mapped element name or reverse</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getElementIndexedName" Const="true">
      <Documentation>
        <UserDocu>getElementIndexedName(name) - Return the indexed element name</UserDocu>
      </Documentation>
    </Methode>
    <Methode Name="getElementMappedName" Const="true">
      <Documentation>
        <UserDocu>getElementMappedName(name) - Return the mapped element name</UserDocu>
      </Documentation>
    </Methode>
    <Attribute Name="BoundBox" ReadOnly="true">
      <Documentation>
        <UserDocu>Get the bounding box (BoundBox) of the complex geometric data.</UserDocu>
      </Documentation>
      <Parameter Name="BoundBox" Type="Object" />
    </Attribute>
    <Attribute Name="CenterOfGravity" ReadOnly="true">
      <Documentation>
        <UserDocu>Get the center of gravity</UserDocu>
      </Documentation>
      <Parameter Name="CenterOfGravity" Type="Object" />
    </Attribute>
    <Attribute Name="Placement" ReadOnly="false">
      <Documentation>
        <UserDocu>Get the current transformation of the object as placement</UserDocu>
      </Documentation>
      <Parameter Name="Placement" Type="Object" />
    </Attribute>
    <Attribute Name="Tag">
      <Documentation>
        <UserDocu>Geometry Tag</UserDocu>
      </Documentation>
      <Parameter Name="Tag" Type="Int"/>
    </Attribute>
    <Attribute Name="Hasher">
      <Documentation>
        <UserDocu>Get/Set the string hasher of this object</UserDocu>
      </Documentation>
      <Parameter Name="Hasher" Type="Object" />
    </Attribute>
    <Attribute Name="ElementMapSize" ReadOnly="true">
      <Documentation>
        <UserDocu>Get the current element map size</UserDocu>
      </Documentation>
      <Parameter Name="ElementMapSize" Type="Int" />
    </Attribute>
    <Attribute Name="ElementMap">
      <Documentation>
        <UserDocu>Get/Set a dict of element mapping</UserDocu>
      </Documentation>
      <Parameter Name="ElementMap" Type="Dict" />
    </Attribute>
    <Attribute Name="ElementReverseMap" ReadOnly="true">
      <Documentation>
        <UserDocu>Get a dict of element reverse mapping</UserDocu>
      </Documentation>
      <Parameter Name="ElementReverseMap" Type="Dict" />
    </Attribute>
    <Attribute Name="ElementMapVersion" ReadOnly="true">
      <Documentation>
        <UserDocu>Element map version</UserDocu>
      </Documentation>
      <Parameter Name="ElementMapVersion" Type="String" />
    </Attribute>
  </PythonExport>
</GenerateModel>
